%!
%% 
%% This is file `pspicture.ps', generated 
%% on <1995/6/4> with the docstrip utility (2.2i).
%% 
%% The original source files were:
%% 
%% pspicture.doc  (with options: `ps')
%% 
%% Do not distribute the stripped version of this file. 
%% The checksum in the header refers to the documented version. 
%% 
%%% ====================================================================
%%%  @LaTeX-style-file{
%%%     author          = "David Carlisle",
%%%     version         = "2.01",
%%%     date            = "16 June 1992",
%%%     time            = "18:30:53 BST",
%%%     filename        = "pspicture.sty",
%%%     address         = "Computer Science Department
%%%                        Manchester University
%%%                        Oxford Road
%%%                        Manchester
%%%                        England
%%%                        M13 9PL",
%%%     telephone       = "+44 61 275 6139",
%%%     FAX             = "+44 61 275 6236",
%%%     checksum        = "56975 755 2882 22245",
%%%     email           = "carlisle@cs.man.ac.uk (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "LaTeX, pictures, PostScript",
%%%     supported       = "yes",
%%%     docstring       = "
%%%
%%%     pspicture.sty
%%%
%%%     A LaTeX style option that reimplements most of the picture
%%%     environment commands to use PostScript \special's, rather than
%%%     the line and circle fonts. This allows lines to have arbitrary
%%%     slope and thickness, and circles to be any size.
%%%
%%%     The checksum field above was produced by
%%%     Robert Solovay's checksum utility.",
%%%  }
%%% ====================================================================



/!BP{
  72 72.27 div dup scale
  }def
/!A{
  newpath
  0 0 moveto
  dup neg dup .4 mul rlineto
  .8 mul 0 exch  rlineto
  closepath
  fill
  } def
/!V{
  !BP
  /!X exch def
  /!y exch def
  /!x exch def
  newpath
  0 0 moveto
  !x 0 eq {0  !y 0 lt {!X neg}{!X} ifelse}
         {!x 0 lt {!X neg}{!X}ifelse  !X !y mul !x abs div} ifelse
  lineto
  setlinewidth % @wholewidth
  currentpoint
  stroke
  translate
  !y !x atan
  rotate
  !A % @arrowlength
  }def
/!L{
  !BP
  /!X exch def
  /!y exch def
  /!x exch def
  newpath
  0 0 moveto
  !x 0 eq {0  !y 0 lt {!X neg}{!X} ifelse}
         {!x 0 lt {!X neg}{!X}ifelse  !X !y mul !x abs div} ifelse
  lineto
  setlinewidth % @wholewidth
  stroke
  }def
/!C{
  !BP
  0 0 3 2 roll
  2 div 0 360 arc
  setlinewidth % @wholewidth
  stroke
  }def
/!D{
  !BP
  0 0 3 2 roll
  2 div 0 360 arc fill
  }def
/!O{
  !BP
  /!y exch 2 div def
  /!x exch 2 div def
  /!r exch !x !y
    2 copy gt {exch} if pop
    2 copy gt {exch} if pop
      def
  setlinewidth % @wholewidth
  1 eq
  {newpath
   !x neg 0 moveto
   !x neg !y 0 !y !r arcto 4 {pop} repeat
   0 !y lineto
   stroke}if
  1 eq
  {newpath
   !x  0 moveto
   !x  !y 0 !y !r arcto 4 {pop} repeat
   0 !y lineto
   stroke}if
  1 eq
  {newpath
   !x neg 0 moveto
   !x neg !y neg 0 !y neg  !r arcto 4 {pop} repeat
   0 !y neg lineto
   stroke}if
  1 eq
  {newpath
   !x  0 moveto
   !x  !y neg 0 !y neg !r arcto 4 {pop} repeat
   0 !y neg lineto
   stroke}if
  }def
/!V2{
  !BP
  2 copy exch
  atan
  /a exch def
  2 copy
  newpath
  0 0 moveto
  lineto          % <x*unitlength> <y*unitlength>
  3 2 roll
  setlinewidth % @wholewidth
  stroke
  translate       % <x*unitlength> <y*unitlength>
  a rotate
  !A % @arrowlength
  }def
/!L2{
  !BP
  newpath
  0 0 moveto
  lineto          % <x*unitlength> <y*unitlength>
  setlinewidth % @wholewidth
  stroke
  }def
/!C2{
  !BP
  /!s exch def
  /!y exch def
  /!x exch def
  newpath
  0 0 moveto
  0 0
  !x 2 div !y 10 div !s mul add
  !y 2 div  !x 10 div  !s mul sub
  !x !y
  curveto
  setlinewidth % @wholewidth
  stroke
  }def
%% End of pspicture.ps 
